Efficient managing of network packet flow and processing is critical for high performance networked computing systems. Network packet flow is highly variable, depending on hardware configurations, process flows and data flows, with data processing needs varying over several orders of magnitude on time scales that can range from seconds to hours. Substantial improvements in network service would be made possible by systems that can flexibly process a data flow, recognize or characterize patterns in the data flow, and improve routing and processing decisions for the data flow.
Unfortunately, the tree-like server connection topology often used in conventional data centers can be prone to traffic slowdowns and computational bottlenecks. Typically, all the servers in such data centers communicate with each other through higher level Ethernet-type switches, such as Top-Of-Rack (TOR) switches. Flow of all the traffic through such TOR switches leads to congestion resulting in increased network latency, particularly during the periods of high usage. Further, these switches are expensive and often need replacement to accommodate upgrades to higher network speeds.